mmax:2$
multiple:false$
for a:1 thru mmax do 
for b:-mmax thru mmax do 
for c:-mmax thru mmax do 
for d:-mmax thru mmax do 
for e:-mmax thru mmax do 
for f:-mmax thru mmax do 
for g:-mmax thru mmax do 
for h:-mmax thru mmax do 
for i:-mmax thru mmax do 
block(AA:matrix([a,b,c],[d,e,f],[g,h,i]),
B:AA^^2,
xa:part(B,1,1),
xb:part(B,1,2),
xc:part(B,1,3),
ya:part(B,2,1),
yb:part(B,2,2),
yc:part(B,2,3),
za:part(B,3,1),
zb:part(B,3,2),
zc:part(B,3,3),
if (xa#1) or (xa#yb) or (xa#zc) then go(loop),
if (xb#0) or (xc#0) or (ya#0) or (yc#0) or (za#0) or (zb#0) then go(loop),
print(" A=",AA," ",A^2,"=",B),
loop);

mul

m;

n;
m;
m.n;